This invention relates to computer programming and systems; and more particularly, to computerized methods, computer-readable medium containing computer-executable instructions, and apparatus for presenting, manipulating, and serving immersive (i.e., panoramic) images.
The Internet and the World Wide Web (xe2x80x9cWebxe2x80x9d) have changed the landscape of information delivery and affected numerous faculties of life, including electronic commerce and entertainment. One area that has benefited from this technological development is the ability to deliver and display multimedia experiences across a network, such as the Internet. In particular, these multimedia experiences may include presenting immersive images.
Today, immersive images can be viewed using a Java capable browser or an enhanced browser having an appropriate plugin. A example of an immersive image 100 viewable using a Java capable browser or an enhanced browser having an appropriate plugin is illustrated in FIG. 1.
However, there is a large portion of the Internet community which cannot view immersive images today. To view these immersive images, these users would need to expend additional time and expense to replace or upgrade their browser. Moreover, a segment of the Internet community (e.g., WebTV users) cannot upgrade their system to be able to view immersive images using available technology. Needed is a system for presenting immersive images received from a server using generic browsing capabilities.
Moreover, current programs, including Java reviewers, for displaying immersive images do not provide a mechanism to alert a viewer of the currently displayed perspective of the immersive images. This results in the loss of viewing context. Needed is a mechanism for allowing a user to readily orient oneself and determine the perspective of the current view of the immersive image.
According to the invention, methods and apparatus are disclosed for presenting immersive images (i.e., panoramic images) and/or supporting the presentation of immersive images. Embodiments of the present invention include various elements and limitations, with no one element or limitation contemplated as being a critical element or limitation. Each of the claims individually recite as aspect of the present invention in its entirety. Moreover, embodiments of the present invention include methods, computer-readable medium containing instructions for performing the methods, and computer systems for practicing the present invention. The embodiments described hereinafter embody various aspects and configurations within the scope and spirit of the present invention.
According to a first embodiment of the present invention, a method and computer-readable medium containing executable instructions by a browser are provided for presenting an immersive image comprising a plurality of sub-images. Preferably, the first embodiment comprises: receiving a first set of instructions for presenting a first view of the immersive image, the first view including a first subset having one or more neighboring sub-images from the plurality of sub-images; receiving the first subset of sub-images from one or more local or remote memories, storage devices, or servers; remote memories, storage devices, or servers; and presenting the second view of the immersive image.
In an embodiment, the immersive image consists of a number N sub-images, and the first and second views each consist of non-overlapping portions of the immersive image. In alternative embodiments, the n sub-images may contain overlapping portions of the immersive image. Preferably, the value of n is eight and the value of m is two.
In an embodiment, one or more sub-images with the second subset not residing in a local memory or storage device are received from a remote server. An embodiment further comprises: requesting a second set of instructions for presenting the second view from a remote server; and receiving the second set of instructions for presenting the second view. Preferably, the first and second sets of instructions are HyperText Markup Language (HTML). In an embodiment, the first set of instructions are in HyperText Markup Language (HTML) and include a Java Script code; wherein, in response to the received signal, the Java Script code causes the presentation of the second view to be performed. In an embodiment, the signal is received in response to a selection by a user of the computer system. In an embodiment, the signal is received in response to a timing signal generator. An embodiment further comprises presenting a reference indicator having a plurality of views, wherein a first view of the reference indicator corresponds to the first view of the immersive image, and a second view of the reference indicator corresponds to the second view of the immersive image. Preferably, the second view is determined from a location indicated by the signal and a position of, or a point within, the reference indicator.
According to a second embodiment of the present invention, a method and computer-readable medium containing computer-executable instructions are provided for presenting an immersive image, where the immersive image includes a plurality of sub-images. Preferably, the second embodiment comprises: receiving a first view instructions, the first view instructions referencing a first and second sub-images of the plurality of sub-images; receiving the first and second sub-images; presenting a first view of the immersive image based on the first view instructions and including the first and second sub-images; receiving a signal indicating a request for a second view of the immersive image; requesting a second view instructions from one or more local or remote memories, storage devices, of servers in response to the received signal; receiving the second view instructions, the second view instructions referencing the second sub-image and a third sub-image; receiving the third sub-image; and presenting the second view of the immersive image based on the second view instructions and including the second and third sub-images.
In an embodiment, the first and second view instructions are in HyperText Markup Language (HTML). Preferably, the first, second and third sub-images, the first and second view instructions are received from one or more remote servers. In an embodiment, the signal is received in response to a selection by a user of the computer system. In an embodiment, the signal is received in response to a timing signal generator. In an embodiment, the first and second sub-images consist of non-overlapping neighboring portions of the immersive image. An embodiment further comprises presenting a reference indicator having a plurality of views, wherein a first view of the reference indicator corresponds to the first view of the immersive image, and a second view of the reference indicator corresponds to the second view of the immersive image. Preferably, the second view is determined from a location indicated by the signal and a position of, or a point within, the reference indicator.
According to a third embodiment of the present invention, a method and computer-readable medium containing computer-executable instructions are provided for presenting an immersive image using a browser, wherein, the immersive image including a plurality of sub-images. Preferably, the third embodiment comprises: receiving a first view instructions, the first view instructions including a browser executable code; receiving a first and second sub-images of the immersive image; presenting a first view of the immersive image based on the first view instructions and including the first and second sub-images; receiving a signal indicating a request for a second view of the immersive image; determining by the browser executable code the second view of the immersive image based on the received signal, the second view including the second and third sub-images; requesting a third sub-image of the immersive image from one or more local or remote memories, storage devices, or servers; receiving the third sub-image; and presenting the second view of the immersive image.
In an embodiment, the first view instructions are in HyperText Markup Language (HTML), and the browser executable code is in Java Script. An embodiment further comprises presenting a reference indicator having a plurality of views, wherein a first view of the reference indicator corresponds to the first view of the immersive image, and a second view of the reference indicator corresponds to the second view of the immersive image. Preferably, the second view is determined from a location indicated by the signal and a position of, or a point within, the reference indicator. In an embodiment, the first, second and third sub-images and the first view HTML source are received from one or more remote servers.
According to a fourth embodiment of the present invention, a method and computer-readable medium containing computer-executable instructions are provided for presenting an immersive image. Preferably, the fourth embodiment comprises: presenting a first immersive image view of the immersive image; presenting a first reference indicator indicating a first viewing perspective of the first immersive image view within the immersive image; receiving a signal indicating a request for a second view of the immersive image; determining the second view of the immersive image representing an angular displacement from the first immersive image view of the immersive image based on the received signal; presenting a second immersive image view of the immersive image; and presenting a second reference indicator indicating a second viewing perspective of the second immersive image view within the immersive image.
In an embodiment, the signal is received in response to a selection by a user of the computer system. Preferably, the second immersive image view is determined from a location indicated by the signal and a position of, or a point within, the reference indicator. In an embodiment, the immersive image is presented with a browser using Java executable code. In an embodiment, the immersive image is presented with a browser using Java Script executable code. In an embodiment, the immersive image is presented with a browser using a first HyperText Markup Language (HTML) page for presenting the first immersive image view of the immersive image, and a second HTML page for presenting the second immersive image view of the immersive image.
According to a fifth embodiment of the present invention, a method and computer-readable medium containing computer-executable instructions by a server are provided for providing a client with a plurality of sub-images of an immersive image. Preferably, the fifth embodiment comprises: receiving from the client a request to view the immersive image; sending to the client a first view HyperText Markup Language (HTML) source identifying at least a first sub-image of the immersive image; sending to the client the first sub-image of the immersive image; receiving a request from the client to view a second view of the immersive image; sending to the client a second view HTML source identifying at least a second sub-image of the immersive image; and sending to the client the second sub-image of the immersive image.
An embodiment further comprises generating the plurality of sub-images from the immersive image, the generated sub-images including the first and second sub-images. Preferably, generating the plurality of sub-images is performed in response to the receipt of the request to view the immersive image. Preferably, the embodiment further comprises determining whether or not the plurality of sub-images already exist; wherein the step of generating the plurality of sub-images is performed after determining that the plurality of sub-images do not already exist. Preferably, the first and second sub-images consist of non-overlapping neighboring portions of the immersive image. Preferably, the first and second sub-images contain overlapping portions of the immersive image.
An embodiment further comprises sending to the client a reference indicator. An embodiment further comprises: sending to the client a first view reference indicator corresponding to the first view of the immersive image; and sending to the client a second view reference indicator corresponding to the second view of the immersive image.
According to a sixth embodiment of the present invention, a method and computer-readable medium containing executable instructions by a server are provided for providing a client with a plurality of sub-images of an immersive image. Preferably, the method comprising: receiving from the client a request to view the immersive image; sending to the client a HyperText Markup Language (HTML) source containing a Java Script code identifying a first and second sub-images of the immersive image; sending to the client the first sub-image of the immersive image; receiving a request from the client for the second sub-image of the immersive image; and sending to the client the second sub-image of the immersive image. An embodiment further comprises generating the plurality of sub-images from the immersive image, the generated sub-images including the first and second sub-images.
According to a seventh embodiment of the present invention, a method and computer-readable medium containing executable instructions by a server are provided for supporting a browser to present an immersive image. Preferably, the method comprises receiving from the browser a request to view the immersive image; receiving an indication of an operational mode of the browser, the operational mode identifying a present mode to be used by the browser in presenting the immersive image; sending HTML code including a Java script and the immersive image to the browser if the present mode indicates Java enabled; and sending a first view HTML source and a first and second sub-images of the immersive image to the browser if the operational mode indicates not Java enabled. An embodiment further comprises dynamically generating the first and second sub-images directly from the immersive image in response to the receipt of the request to view the immersive image and operational mode of the browser.